#!/bin/bash
# 用法: ./script.sh [输入目录] [输出目录]
# 如果未提供输入或输出目录，则使用当前目录。
# 脚本将创建一个带有当前日期附加到文件名的输入目录的tar.gz文件。

if [ "$1" == "-help" ]; then
  echo "用法: ./script.sh [输入目录] [输出目录]"
  echo "如果未提供输入或输出目录，则使用当前目录。"
  echo "脚本将创建一个带有当前日期附加到文件名的输入目录的tar.gz文件。"
  exit 0
fi

input_dir=${1:-./}
output_dir=${2:-./}

current_date=$(date +"%y-%m-%d_%H%M%S")
output_file="$output_dir/$(basename $(realpath $input_dir))_$current_date.tar.gz"

if [ -f "$input_dir/.gitignore" ]; then
  rsync -a --exclude-from="$input_dir/.gitignore" --exclude=".git" $input_dir/ $output_dir/temp/
  tar -czf "$output_file" -C $output_dir/temp/ .
  rm -rf $output_dir/temp
else
  tar -czf "$output_file" --exclude=".git" --exclude="$(basename $output_file)" -C $input_dir .
fi
